Projection display system with pressure sensing at screen, and computer assisted alignment implemented by applying pressure at displayed calibration marks

ABSTRACT

An interactive display system comprising a touch sensitive display surface for sensing pressure applied thereto and in response generating control signals indicating locations of the applied pressure, a personal computer for receiving the control signals and in response generating graph images, and an LCD panel in combination with an overhead projector for receiving and projecting the graphic images onto the touch sensitive display surface at the indicated locations. The LCD panel and overhead projector may be provided an an integral unit.

This application is a continuation of U.S. Ser. No. 08/477,498, filed onJun. 7, 1995, abandoned, which is a continuation of U.S. Pat. No.07/780,052, filed on Oct. 21, 1991, now U.S. Ser. No. 5,448,263.

FIELD OF THE INVENTION

This invention relates in general to display systems and moreparticularly to an interactive display system for projecting user drawnscript in combination with screen output of application programs onto atouch sensitive display surface which is capable of providing userinteraction with the applications programs.

BACKGROUND OF THE INVENTION

Various devices are known for displaying information generated by acomputer as well as for inputting data into a computer. Examples of theformer include CRT display screens and projection surfaces. Examples ofthe latter include keyboards, mouse input devices and graphic tablets.

Although such prior art devices are useful for displaying informationand inputting data into a computer, it is believed that no system hashitherto been provided for integrating large scale image projection withdata input in an interactive manner.

It is also well known to use a touch-sensitive screen or white board asa drawing surface for receiving and reproducing user input script. Inparticular, a user draws on the touch-sensitive screen using colouredmarkers in order to present information. Pressure sensors are providedbehind the screen for detecting pressure applied to the screen as aresult of drawing using the markers, and in response generating controlsignals which are then used to create a hard-copy print out of the imagedrawn on the screen.

SUMMARY OF THE INVENTION

According to the present invention, an interactive display system isprovided in which a touch-sensitive screen, or white board, is used as aprojection surface. Control signals are generated by the touch-sensitivescreen in the usual manner responsive to user applied pressure (e.g. dueto drawing on the board with a marker, pointer, stylus or finger, etc.).At the same time, a computer is used to execute any one or more wellknown applications programs, in the usual manner. However, according tothe present invention, the computer generated screen is projected ontothe touch-sensitive screen utilizing an LCD projector panel inconjunction with an overhead projector. Furthermore, according to thepresent invention, control signals received from the touch-sensitivescreen are integrated with the computer generated graphics so as to beprojected therewith onto the touch-sensitive screen. In this way, acompletely interactive display system is provided in which the user canhighlight and edit information generated by the computer program bysimply drawing on the touch-sensitive screen. Thus, the system of thepresent invention provides a truly unique interactive approach to givinggroup presentations.

According to a further aspect of the present invention, multipleinteractive computer projection systems can be interconnected (i.e.networked) and supported by a voice conferencing system such that any ofseveral groups of users can view the output displays or inputinformation to the system at the same time (i.e. the information iscommunicated to and updates all on-line computers and display devices).

Therefore, in accordance with an aspect of the present invention, thereis provided an interactive display system, comprising:

a) one or more touch-sensitive display surfaces for detectingpredetermined events associated therewith and in response generatingcontrol signals for identifying said events and indicating locationsthereof,

b) one or more computers for selectively executing one or moreapplications programs and in response generating screen video displays,said one or more computers being connected to respective ones of saidtouch-sensitive display surfaces,

c) driver means in each said one or more computers for receiving saidcontrol signals from an associated one of said touch-sensitive displaysurfaces and in response generating a command to a selected one of saidapplications programs for identifying an associated one of saidcomputers and for identifying said events and indicating the locationsthereof, whereby said selected applications program executes saidcommand and updates said screen video displays in accordance therewith,and

d) projector means connected to said one or more computers for receivingand projecting said screen video displays onto said one or moretouch-sensitive display surfaces.

According to a further aspect of the invention, there is provided aninteractive display system, comprising:

a) a touch-sensitive display screen for sensing pressure applied theretoand in response generating control signals indicating locations of saidapplied pressure, and

b) means for receiving said control signals and in response generatingand projecting graphic images onto said touch sensitive display screenat said locations.

BRIEF DESCRIPTION OF THE DRAWINGS

A description of the preferred embodiment is provided herein below withreference to the following drawings, in which:

FIG. 1 is a schematic representation of the interactive display systemaccording to the present invention;

FIG. 2 is a schematic representation of the interactive display systemaccording to the present invention for operation in conference mode;

FIG. 3 is program flow chart showing start-up procedures according thepresent invention;

FIG. 4 is a program flow chart showing touch board initializationaccording to the present invention;

FIG. 5 is a program flow chart showing digitizer board initializationaccording to the present invention;

FIG. 6 is program flow chart showing network structure determinationaccording to the present invention;

FIG. 7 is a program flow chart showing two node network initializationaccording to the present invention;

FIG. 8 is program flow chart showing broadcast network start upaccording to the present invention;

FIG. 9 is a program flow chart showing custom network start up accordingto the present invention;

FIG. 10 is a program flow chart showing final initialization proceduresaccording to the present invention;

FIG. 11 is s program flow chart showing the main program start uproutine according to the present invention;

FIG. 12 is a program flow chart showing touch board calibrationaccording to the present invention;

FIGS. 13a-13 d show display screens for use during touch calibrationaccording to the present invention;

FIG. 14 is a program flow chart showing the applications set up routineaccording to the present invention;

FIG. 15a-15 d show display screens for use during applications set upaccording to the present invention;

FIG. 16 is a flow chart showing master mode set up according to thepresent invention;

FIG. 16a shows the screen display for use during conference modeselection;

FIG. 17 is a program flow chart showing participant set up according tothe present invention;

FIG. 18 is a program flow chart showing the main program loop accordingto the present invention;

FIG. 19 is a program flow chart showing the device driver loader routineaccording to the present invention;

FIG. 20 is a program flow chart showing the touch board interruptservice entry point routing according to the present invention;

FIG. 21 is a program flow chart showing the touch board command handleraccording to the present invention; and

FIG. 22 is a program flow chart showing the touch board positionprocessor routing according to the present invention; and

DETAILED DESCRIPTIONS OF THE PREFERRED EMBODIMENTS

The principles of the invention are demonstrated in accordance with thefollowing preferred embodiments.

The interactive graphics system of the present invention is shown ingeneral with reference to FIG. 1, comprising a touch-sensitive screen 1having an output connected to an input of an electronic touch screencontroller 3 installed within a card slot of a personal computer 5.

An overhead projector 7 is orientated so as to project an image onto thesurface of touch-sensitive screen 1. The image is generated by means ofLCD projector panel 9 which is connected to the graphics output of thepersonal computer 5.

In addition to executing one or more well known applications programs(e.g. Word Processing, Spreadsheet, Graphics, etc.), according to thepresent invention personal computer 5 also executes a graphicstranslator routine for receiving coordinate or location information fromthe touch-sensitive screen 1 and in response interacting with thedrawing queue for presenting touch-screen information to the drawingqueue for the currently running application.

Thus, in operation, when a user selectively applies pressure in the formof a point, line of script, etc., to the surface of touch screen 1,information is conveyed by the touch screen 1 to computer 5 which inresponse updates the image projected by LCD panel 9 and projector 7 withthe user script and reproduces such information at a sufficient ratethat user drawings on the board 1 become interactive. Alternatively, thecomputer 5 can interpret the user's touch input and in response emulateoperation of a mouse, light pen, digital command, etc., for conveyinginformation to the application program being executed.

As will be discussed in greater detail below, one aspect of the presentinvention is the operation of a software algorithm for effectingkeystone correction or adjustment of the input signal to the computer 5to compensate for the fact that the projected image can never be anexact 90° (i.e. perpendicular) to the touch screen surface. Since anydeviation from 90° will cause a distortion of the image (i.e. stretchingand compression), the keystone correction algorithm is executed whenorientating the touch screen 1 prior to operation in order to thereaftercorrect for any such distortion in the projected image.

An advantage of the interactive graphics system of the present inventionis that it reduces the number of interactions necessary for a user toaccomplish a task using the application running on the computer 5, andto allow the user to interface with the computer generated image byoverlaying the user script onto the image.

According to an aspect of the invention, a plurality of identicalinteractive graphics systems may be connected in a network forconferencing purposes. A typical conferencing scenario is depicted withreference to FIG. 2, in which three systems 11, 13 and 15 (each beingidentical to the system depicted in FIG. 1) are located remote from oneanother and interconnected via a ring-type network, as will be discussedin greater detail below. Thus, input information received from thetouch-sensitive screen 1 of any of the multiple interconnected systemsis read by the associated computer and then communicated to theadditional remote computers for display on the associated remote touchscreens in conjunction with the identical application program output.

Thus, when multiple sites 11, 13 and 15 are networked or interconnectedas shown in FIG. 2, and supported by a voice conferencing system ortelephone system, any of several groups of users can view the outputdisplays or input information to the computer graphics system. Thisinformation is then communicated to and updates all on-line computersand display devices forming the system conference. The ease of dataentry, ease of information display, interactivity and the elimination ofa hardware input device such as a mouse, are all advantages flowing fromthe system according to the present invention.

In the stand-alone system of FIG. 1, several user groups can view theprojected screen output, and any of these users can then update theinformation by pressing on the surface of touch screen 1. The computer5, in conjunction with controller 3, recognizes the touch as either amouse command, for updating the application, or as an overlay command,causing the image to be updated to include the user drawing (e.g. point,line or script).

In the conference environment of FIG. 2, users at a plurality oflocations will view the displays simultaneously, and any user at anylocation can input information by touching the screen 1. The touchinformation is interpreted by the associated personal computer and thencommunicated immediately via modem or other network device to the otherlocations such that the displays or applications at each location aresimultaneously updated.

The network implemented in accordance with the present invention isconfigured such that each site 11, 13 and 15 involved in the conference,has the same applications and data files running simultaneously. Updatecommands are sent out over the conference system for prompting everysite to recompute the data and update the image projected on the localtouch screens 1. Each site 11, 13 and 15 in the network or conferencecan communicate overlay hand graphics and erasure commands applied tothe local touch screen to each other system in the conference. Thisallows every participant to input information immediately and to havesuch information displayed at each other site. Conference control can bepassed to any site 11, 13 or 15 quickly and easily, as will be discussedin greater detail below. The network operating algorithm allows anygraphics display, including overlaid pen graphics, to be captured andsaved to disk for later reference and retrieval.

Operation of the preferred embodiments of the invention will now bedescribed with reference to the remaining figures. Specifically, detailsof configuring the system for a conference and a description of theactivities that a user may engage in once the system has beenconfigured, will be described in detail.

With reference to FIG. 3, program operation starts at step 100. Afterstart-up of the computer 5, operational parameters for the program areread in from a default list or data file (101), depending upon thenature of the implementation. The values of the operational parametersare then verified for accuracy and validity (102). If any of the startup parameters are invalid (103) an error message reflecting the natureof the error is displayed (104) and program operation is terminated.

After completing the start-up parameter checks, a test is made todetermine if the program is already loaded and operating (105). If itis, an attempt is made to restart the program, further loadinginstructions are aborted, an appropriate error message is displayed(104), and the program is exited.

If, on the other hand, it is determined that this is a first loadoperation, the type of input device connected to computer 5 isdetermined from the start-up parameters, and an appropriate calibrationprocedure is invoked. Specifically, a test is made (106) to see whetherthe input is a touch-sensitive screen (e.g. screen 1). If it is, theinitialization routine for the touch sensitive screen 1 is entered(200).

If the input device is not a touch-sensitive screen, a test is done todetermine if the input device is a digitizer board (not shown). If thedevice is a digitizer board, then the initialization routine for thedigitizer board is selected (300). If the input is not a digitizer boardthen the default system input device is selected (108). The defaultinput device may be a keyboard mouse or some other type of pointingdevice. Once the input device is selected, the network set up proceduresare entered (400).

FIG. 4 outlines the start-up test and calibration procedure forinstallation utilizing a touch-sensitive screen 1. The touch sensitivescreen 1 may be defined as a device that is capable of returning to acontrolling device, positional information that allows the position of apoint that has been touched by some device (e.g. finger, marker pen,etc.) on the surface of the screen to be determined. On entry (200), thetouch screen interface device or controller 3 is tested for correctoperation and installation (201). Any set-up procedures that must becompleted are also done at this time. If the diagnostics are notcompleted successfully (202), an error message is presented (203) andthe program is exited.

Upon successful completion of the test procedures, the touch screeninterface 3 is reset (204) and normal default operational parameters areloaded (205). Control is then passed to the network initializationroutine (400).

FIG. 5 outlines the start-up test and calibration procedure forinstallations utilizing a digitizer board. A digitizer board is definedfor the purpose of the present invention, as a device that utilizes afixed geometry structure for determining the position of a sensingdevice. The sensing device may be a hand-held device with functionbuttons or a device resembling a common pen. On entry (300), thedigitizer board interface device or controller (now shown) is tested forcorrect operation and installation (301). Any set-up procedures thatmust be completed are also done at this time. If the diagnostics are notcompleted successfully (302), an error message is presented (303) andthe program is exited. Upon successful completion of the testprocedures, the digitizer board interface is reset (304) and the normaldefault operational parameters are loaded (305). Control is then passedto the network initialization functions (400) as discussed above withreference to FIG. 4.

If the default input device for the computer is used, positionalinformation is determined from the device access control for thecomputer.

FIG. 6 illustrates the network type determination and initializationsequence (400). First, the network type parameter is recovered (401) andprocessed to determine which type of network is to be set up. If atwo-node network is selected (402), then the set-up procedure for thetwo-node network is entered (400). If the broadcast network is selected(403), then the broadcast network initialization procedure is entered(600). If a custom network is selected (404) then the custom network setup procedure is entered (700). If no network is selected, then thestand-alone mode is selected by default.

The various types of network that are supported in the system of thepresent invention are as follows: two-node network, broadcast network,and “other” network structures. For the purpose of describing thepresent invention, a network is used to link two or more conferencingsystems together. Information sent over the network allows all of theremote machines to stay synchronized with the current master machine.Running functionally identical programs at each of the remote sitesrequires the network to handle only control commands and not the largeamount of continuous data that is normally generated by remotetelevision conferencing. Reducing the linking network requirements tocontrol passing improves the versatility of remote conferencing whilesubstantially improving performance over such prior art televisionconferencing systems.

A two-node network is defined for the purpose of the present invention,as a network where two conference systems are linked together and arecapable of simultaneous communication.

Broadcast networks are characterized by one system sending outinformation while all of the other conference systems operate in receivemode. This network has the attribute of allowing a number of systems tobe involved in a presentation-type conference without incurringperformance degradation.

Custom networks cover any of a variety of networking structures thateither are now, or will be, provided to facilitate the simultaneouscommunication of multiple conferencing systems.

If no network type is specified, then the conference system is set up tooperate in stand-alone mode. This mode of operation is supported toallow for presentation preparation and user training on a single system,such as shown with reference to FIG. 2.

FIG. 7 shows the program steps for installation and testing of thetwo-node network structure. On entry (500) the network adaptor orcontroller (incorporated into computer 5) is tested for correctinstallation and operation (501). In the event of an error during thistest (502), an error message is printed (503) and the program is exited.A network controller or adaptor error generally will indicate a hardwarefailure.

If the two-node network adaptor or controller passes the initializationtests (502), the adaptor is reset (504). Following the reset operation,the default two-node network parameters are loaded (505) and control ispassed to the main program start-up procedure (800).

FIG. 8 shows the installation and testing steps of the broadcast networkstructure. On entry (600), the network adaptor or controller is testedfor correct installation and operation (601). In the event of an errorcarrying out this test (602), an error message is printed (603) and theprogram is exited. A network controller or adaptor error generally willindicate a hardware failure. If the broadcast network adaptor orcontroller passes the initialization tests (602), the adaptor is reset(604). Following the reset operation, the default broadcast networkparameters are loaded (605) and control is passed to the main programstart-up procedure (800).

FIG. 9 shows the installation and testing steps of a custom networkstructure. On entry (700), the software driver for the custom networkadaptor or controller (located in computer 5) is loaded (701). Thenetwork adaptor or controller is then tested for correct installationand operation (702). In the event of an error during this test (703), anerror message is printed (704) and the program is exited. A networkcontroller or adaptor error generally will indicate a hardware failure.If the custom network adaptor or controller passes the initializationtests (703) the adaptor is reset (705). Following the reset operationthe default custom network parameters are loaded (706) and control ispassed to the main program start-up procedure (800).

FIG. 10 shows the final phase of low level initialization prior toentering the main control portion of the program. On entry (800), anyremaining default operating parameters are loaded (801). Theseparameters include options such as display screen parameters, fileparameter specifications, etc. All internal operating modes are then setto idle (802) and control is passed to the main control program sections(900).

FIG. 11 shows the main program start-up code structure. On entry (900),the input device and the selected network interface are activated (901).In addition, the main control program start-up parameters are alsoinitialized. Following the parameter set-up, a series of tests are doneto determine the type of input device set-up and orientation that willbe required. If a touch-sensitive screen 1 has been specified, then theinterface is set-up to return uncorrected coordinates (905). Thetouch-sensitive screen alignment procedure is then invoked (1000). If atouch-sensitive screen was not selected (903), a test is then made todetermine whether a digitizer board is being used (904). If a digitizerboard has been selected, then the absolute scale and alignmentparameters for the board are loaded from an external source (906).

The program flow then proceeds on to determine if the default meancontrol program operating parameters will be accepted (907). If not, theoperating parameter input procedures are invoked (1100).

If the default parameters are accepted, control is passed to theapplications set-up procedures (1200).

If a digitizer board was not selected (904), then the calibrationparameters for the default computer input device are loaded from anexternal source (908). The program flow then proceeds on to determine ifthe default main control program operating parameters will be accepted(907). If not, the operating parameter input procedures are invoked(1100). If the default parameters are accepted, control is passed to theapplications set-up procedures (1200).

FIG. 12 represents the touch board alignment procedure which ensuresthat the image on the touch-sensitive screen 1 corresponds with theimage appearing on the display of computer 5. The purpose of thisalignment procedure is to determine the position of the projected imageon the touch-sensitive screen and to determine the corrections requiredto compensate for image projection problems. Keystoning caused by amisalignment between the projector 7 and the touch-sensitive screen 1(FIG. 1) is the primary problem that is addressed by this procedure.Other problems such as rotation of the image on the touch-sensitivescreen and related issues are also overcome by this calibrationprocedure.

On entry (1000), a first alignment image is presented (1001). Thealignment image is made up of a marker, dot or cross, and preferablyalso text explaining to the user what to do, as shown in the screendisplay of FIG. 13a. The marker is projected at a known point on thetouch-sensitive screen 1. The information returned by the screen 1 whenthe marker is touched, is used to indicate the marker's position on thetouch-sensitive screen surface 1.

As shown in FIG. 13a, in addition to the marker related text, the userhas the option to select the last coordinate points which had beenpreviously input (e.g. “Go Back”). These points are saved from theprevious use of the program. Alternatively, the user may restart thecalibration procedure (e.g. by depressing “Re-Start” on the screen 1).

The program then waits and checks for user input (1002). If coordinateinformation is not received from the user (1002), a test is made for arestart request (1003). If the user's input was a restart request, thecalibration sequence is restarted (1001). If the user's request was nota restart request (1003), a test is made to determine if the user wantsto use the default parameters (1005). If not, the program is exited. Ifthe user accepts the default parameters (1005), the last set of positionand correction parameters are loaded (1008, 1009). The touch-sensitivescreen interface 3 is then set for returning corrected coordinates tothe program (1010). Control is then passed to the default applicationslist procedure (1200).

If the user's input was coordinate information (1002), the coordinate issaved and a second calibration screen is presented (1004), as shown withreference to FIG. 13b.

The system then waits and checks for user input (1006). If coordinateinformation is not received from the user (1006) a test is made for arestart request (1003). If the user's input was a restart request, thecalibration sequence is restarted (1001). If the user's request was nota restart request (1003), a test is made to determine if the user wantsto use the default parameters (1005). If not, the program is exited.

If the user accepts the default parameters (1005), the last set ofposition and correction parameters are loaded (1008, 1009). Thetouch-sensitive screen interface 3 is then set for returning correctedcoordinates to the program (1010). Control is then passed to the defaultapplications list procedure (1200).

If the user's input was coordinate information (1006), then thecoordinate is saved and the third calibration screen (FIG. 13b) ispresented (1007).

The system then waits and checks for user input (1016). If coordinateinformation is not received from the user (1016), a test is made for arestart request (1003). If the user's input was a restart request, thecalibration sequence is re-started (1001). If the user's input was not arestart request (1003), a test is made to determine if the user wants touse the default parameters (1005). If not, the program is exited.

If the user accepts the default parameters (1005), then the last set ofposition and correction parameters are loaded (1008, 1009). The touchsensitive screen interface 3 is then set for returning correctedcoordinates to the program (1010). Control is then passed to the defaultapplication list procedure (1200).

If the user's input was coordinate information (1016), then thecoordinate is saved and the fourth calibration screen (FIG. 13d) ispresented (1011). A wait and check is performed for user input (1012).If coordinate information is not received from the user (1012), a testis made for a restart request (1003). If the user's input is a re-startrequest, then the calibration sequence is restarted (1001). If theuser's request is not a restart request (1003), a test is made todetermine if the user wants to use the default parameters (1005). Ifnot, the program is exited.

If the user accepts the default parameters (1005), then the last set ofposition and correction parameters are loaded (1008, 1009). Thetouch-sensitive screen interface 3 is then set for returning correctedcoordinates to the program (1010). control is then passed to the defaultapplications list procedure (1200).

If the user's input is coordinate information (1012), then the screenposition and correction parameters are computed (1013) and saved forfuture use.

Previously computed touch-sensitive screen linearity parameters are thenloaded (1014) and the interface 3 is set to return correctedcoordinates. Control is subsequently passed to the applications loadingprocedure (1100).

FIG. 14 shows the applications loading and set-up operations accordingto the present invention. One aspect of the present invention is thatstandard applications software running at multiple remote sites can becontrolled simultaneously from a single site. To accomplish this,information regarding the type and structure of the application softwareto be run, is loaded into the program according to the presentinvention. The procedure outlined in FIG. 14 handles the applicationinformation operation. There are two entry points to this procedure(1100 and 1200).

The first entry point (1100) is used where the user has not selected adefault settings option. In this case, the user is asked for the list ofapplications to be used (1101).

For example, with reference to the screen display of FIG. 15a, theapplications Powerpnt, Excel and Calc are shown. The user may add afurther application, such as Notepad, by depressing the touch-sensitivescreen 1 where the prompt “Add” appears (FIG. 15a). The program thenprompts the user to input via the keyboard of computer 5 (or via screen1), the name of the application, as shown in FIG. 15b. The user may thenaccept the application, resulting in an icon appearing therefor (seeFIG. 15c). When the user has completed the entry of the applicationslists, control is passed to the applications set-up operation (1102).

If the default settings entry point (1200) is used, the previously usedapplications lists is loaded (1201) and control is passed to theapplications set-up operation (1102).

The applications set-up operation (1102) is used to check to ensure thatthe requested applications are valid. Applications that are accepted asvalid are then presented to the user for acceptance (1103), as shown inthe screen display of FIG. 15d. If the applications list is notaccepted, control is passed back to the applications list input function(1101).

Acceptance of the applications list (1104) causes the applications listto be saved (1104) for later use.

After the applications list is saved, the user is asked for theconference operating mode. At this point, the conference operating modeis determined (1106).

There are two basic modes of operation: the master mode and theparticipant mode. The master mode unit is responsible for the listcontaining information on each of the participants, as well asestablishing the network structure and establishing contact with each ofthe participant machines. In addition, the master system is responsiblefor the conduct of the conference.

Participant mode is the second mode of operation. Only a limited set ofcontrol options are generally available to the participant.

If the master mode is selected (1106), control is passed to the mastermode set-up procedure (1300). Selection of participant mode causesparticipant set-up procedures to be invoked (1400).

FIG. 16 represents the master mode set-up procedure. On entry (1301),the last node (participant) list is read into the program from residentmemory of computer 5. The user then has the option of accepting orrejecting the node list (1302). If the node list is accepted (1302), thelist is then saved (1303). If the node list is rejected (1302), then theuser builds a new node list (1304). The new node list is then saved(1303).

FIG. 16a depicts the screen display presented by the system to the userfor the purpose of selecting and saving a new node list.

After the node list has been accepted and saved, the nodes listed arecontacted and the network is established (1305). Specifically, themaster node or computer 5 places calls via modem and telephone lines(not shown) to the other participants in the network in a well knownmanner. Alternatively, radio, microwave or other communication may beeffected. Program flow then enters a wait cycle until the network isestablished (1306). Once the network is operational (1306), the mainprogram loop is entered (1500).

FIG. 17 shows the participant mode set-up procedure. On entry (1401),the selected network is prepared for connection (1401) with theconference master. From there, a wait cycle is entered into until thenetwork is established (1402). After the network is established (1402),the main program loop is entered (1500) for the participant machine.

FIG. 18 outlines the main program loop structure. This structure isresponsible for the continuous service of the conference network in thebackground while the main application program runs in the foreground oneach of the systems forming the conference. It is necessary for thisloop to continuously process network events, local events and specialmode change operations. Network events are defined as commands receivedfrom or status changes related to the network interface. Networkcommands are items such as synchronization messages, command informationbeing passed from one machine to another, or any other type ofinformation transfer that occurs while the network is established.Status change information is defined as information related to thenetwork status such as data errors, loss of connection, etc.

Local events are events generated by the local application for keyboard,mouse, touch-sensitive screen 1, digitizer pad, etc. Generally, localevents are sent out on the network to each of the participant nodes,depending on the network configuration and the operating mode, by thenode generating the event. Examples of mode change events include eventsthat transfer master control to another node, changing the operatingmode of a node, or any other special type of event that occurs outsidethe realm of the current application.

On entry (1500), a check is made for any pending network events (1501).If a network event is found (1501), it is passed to the network eventprocess operation (1503) where it is acted upon.

After processing, the main loop is re-entered (1501). In the event thatno network events are available (1501), a test is made to determine ifan application event has occurred (1502). If so, the event is allowed tobe processed (1504) and the loop is re-entered (1501). If no applicationevents are present (1502), a test is performed for a special mode changeevent (1505). If no mode change event is present, the control passedback to the network event checker (1501). If a mode change event wasfound, it is processed (1506) and control is returned to the networkevent checker (1501).

According to the preferred embodiment of the invention, the MicroSoft3.0 Windows™ program environment is used operating under the MS-DOSoperating system. Under this operating environment, all eventoccurrences are handled by interrupting the computer 5 and havingspecific events serviced. In the case of the present invention, thereare several possible sources of interrupts that can occur during theoperation of the program. For example, interrupts can be generated bythe touch-sensitive screen, keyboard or mouse input to the computer 5,or via the network interface with remote nodes. Each of these interruptsin the procedures that are used to service them are discussed in greaterdetail below.

With reference to FIG. 19, a memory resident device driver is loaded.The device driver checks and sets up the operating environment and thenexits leaving in place the software required to handle the low levelsupport of the conference system. Microsoft Windows™ 3.0 is subsequentlystarted and the main part of the program is invoked. Thus, when the mainprogram is started, the previously loaded device driver also becomesactive. The interrupt service details that follow in the discussionbelow, cover the interaction between the device driver, the device beingserviced, and the main program.

On entry (1600), the program identification banner is presented on thedisplay monitor (1601). A test is then done to determine if the devicedriver has already been loaded and is currently operational (1602). Ifthe device driver has already been loaded (1603), an error message isdisplayed (1604) and the program is exited without being loaded.

If the device driver has not been loaded (1603), a test is done todetermine if the touch-sensitive screen interface 3 is installed (1605).If the touch-sensitive screen interface 3 is not detected (1606), anerror message is displayed (1607) and the program is exited withoutloading.

If the touch-sensitive screen interface 3 is detected (1606), a test isdone to determine if the interface 3 and the touch-sensitive screen 1are operating correctly, (1608). If not, an error message is displayed(1610) and the program is exited.

If the touch-sensitive screen is operating (1609), then the driver isloaded and the interrupt vectors are set (1611), a test is made for thepresence of two serial ports (1612) and the driver is put into an idlemode (1613).

After the initializations are complete, the driver exits, leaving theinterrupt service routines in place and returns control to the operatingsystem (MS-DOS).

The touch-sensitive screen interrupt service routine is invoked wheneverany event occurs relating to the screen 1. This includes touching thescreen, picking up a pen, pressing a button, or any other operationperformed by the screen 1 or its interface 3.

FIG. 20 depicts a flowchart with a touch-sensitive screen interruptservice routine entry point. On entry (1700), the touch-sensitive screenevent is read from the interface 3. The event is checked for a change inpen status (1702, 1703, 1704 and 1705), erase status (1706) or buttonstatus (1707). If the event is any one specifically, each coloured pen(i.e., the red pen, the green pen, the blue pen and the black pen) aswell as the eraser is checked to determine if it is in a tool upcondition. If a pen or the eraser is in a tool up condition and the penor eraser is used to contact the screen 1, an event command is generatedbased on the particular event.

This event code is then transmitted to the command handler (1900) shownin FIG. 21. A check is made using the command handler routine todetermine if the driver is active (1901). If not, the interface 3 isreset and the command is ignored. If the driver is in an active state,the command is transmitted to the main application program where thestatus change is noted and, in the case of a button event, processedaccording to the current button function definition. In a successfulprototype of the invention, the button was used to indicate a savescreen request.

After transmitting the command to the main application program, a testis conducted to determine if the network is active (1904). If it is, thecommand is transmitted over the network to all other nodes so that nodeson the network track each other. If the network is not active, theinterface 3 is reset (1902) and the interrupt service routine is exited.Upon transmitting the command over the network, a completion sequence(1902) commences.

In the event that the event associated with touch sensitive screen 1 isnot status change, processing flow passes to the touch-sensitive screenposition processor (1800) as shown in FIG. 22. The X and Y positions ofthe touch point on screen 1 are read from the interface 3 (1801). A testis then conducted to determine if the main application program requiresraw position information (1802). Normally, raw position information isonly required during the procedure of image alignment and the generationof keystone correction factors discussed above. If raw coordinateinformation is required (1802), then this information is transmitted tothe main application software (1803) and control is passed to thetouch-sensitive screen command handler (1905) where the interface 3 isreset (1902) and the interrupt service routine is exited.

If raw coordinates are not required by the main application software(1802), then keystone correction is applied to the position information(1805). As discussed above, keystone correction is the procedure bywhich positional information from the trapezoidal image, caused byimperfect vertical alignment between the image projector 7 and thetouch-sensitive screen, is compensated for. The compensation processuses the positional information received from the touch-sensitive screen1 and corrects the coordinate data along the X axis so that is appears,to the main application software, to be at the point where it would beif the projected image was rectangular.

At this stage, a test is conducted to determine if the positionalinformation represents a new contact point (1806). This would occur ifthe last positional coordinate received represented a release event. Ifthe current point represents a new contact point, then a check is madeto determine if this is the second time that the touch-sensitive screen1 has been touched at the same point (1808). If it is, the touch counteris reset (1811), and a “double click” command is generated (1812). Adouble click command is interpreted, by the Window™ program, as afunction selection request, normally invoked by two touches insuccession on a picture icon that represents a program function. Thedouble click command is then transmitted to the touch-sensitive screencommand handler. Next, a check is conducted to determine if the driveris active (1901). If not, the interface 3 is reset and the command isignored. If the command is in an active state, the command istransmitted to the main application software and processed.

After transmitting the command code to the main application software, atest is conducted to determine if the network is active (1904). If itis, the command is transmitted over the network to the other nodes sothat all of the nodes on the network track each other. If the network isnot active, the touch-sensitive screen interface 3 is reset (1902) andthe interrupt service routine is exited. Upon sending the command overthe network, the completion sequence (1902) commences.

If the current touch point is determined to be the first contact at agiven point on the screen 1 (1808), then the touch counter is set to“1”, indicating the first contact (1809). Control is then passed to thetouch-sensitive screen command handler (1905) where the touch boardinterface 3 is reset (1902) and the interrupt service routine is exited.

If the current contact point is determined not to be a new contact point(1806), then the touch counter is reset (1807) and a new positioncommand is built (1810). The new position command is sent to thetouch-sensitive screen command handler (1900). If not, the interface 3is reset and the command is ignored. If the driver is in an activestate, the command is transmitted to the main application software andprocessed.

After passing the command code to main the application software, a testis conducted to determine if the network is active (1904). If it is, thecommand is transmitted over the network to the other nodes so that allof the nodes on the network track each other. If the network is notactive, the touch-sensitive screen interface 3 is reset (1902) and theinterrupt service routine is exited. Upon sending the command over thenetwork, the completion sequence (1902) commences.

As discussed above, according to the preferred embodiment, the mainapplication software runs under the well known MicroSoft Window™ 3.0software environment. Window™ 3.0 supports the simultaneous operation ofmultiple programs. This characteristic is exploited by the mainapplication software in the present invention.

When another application is running, the main application software forthis invention remains operating in a background mode. As such, whenevera command event is passed to the main application software it is actedupon. In the case of a pen graphics command, a line of the currentlyselected colour and width is projected directly on the screen 1, therebyappearing to be drawn on the current display on whatever application isrunning in the foreground. The principle of simultaneous programoperation provided by the Window™ environment allows for the system ofthe present invention to coordinate the operation of the same userapplication programs at different sites on different computers.

Most of the command codes referred to above are transferred in six bytepackages. It should be noted, however, that the data blocks need notnecessarily be six bytes long and that the structure can vary dependingon data type variations. The structure of the command code is shownbelow in table 1.

TABLE 1 BYTE FUNCTION 1 command type code 2-3 first data word 4-5 seconddata word 6 network node identification

The command type code simply specifies the type of command. This can be,for example, RED PEN UP, LINE TO POSITION, BOARD FINGER CONTACT, etc.The first and second data words are generally used to transmit X and Ycoordinate data. The network node identification byte is used toidentify a machine that is the source of the command. At the start of anetwork link-up, each node is assigned an identification number. Thisidentification subsequently allows each other machine in the network totrack the command events properly.

As discussed above, according to the present invention, show exampleapplication graphics can be projected on the screen 1, and the pengraphics are integrated with the graphics image. For example, a screenmay be generated by a “Smart Notepad” application. As will be understoodby a person skilled in the art, the network can be set-up forstand-alone use, and various options can be provided for graphics linewidths, application selection, help menu, etc. The user can entercertain script graphics (i.e. two circles and an arrow connecting them),by means of simply drawing on the projected image applied to screen 1. Agraphic image can be generated by a calculator application program, asit appears projected on screen 1, and user applied pen graphics can thenbe drawn and re-projected onto the screen 1. As discussed above, thescreen graphics can be simultaneously projected onto the touch-sensitivescreens located at any number of network connected conference sites(FIG. 21), resulting in a truly interactive conferencing display system.

In summary, according to one aspect of the invention, an interactivedisplay system is provided for overlying graphics applied to a displaysurface onto the graphics output of an application running in theforeground, and to allow user input to the application program by meansof a touch-sensitive screen. According to another aspect of theinvention, multiple users may be connected in conference to allow forthe sharing of information in an interactive graphics environment.Furthermore, according to an additional aspect of the invention, each ofthe identical simultaneously running application programs at themultiple sites can be remotely controlled by any other one of the sites,by means of the local touch-sensitive screens and associatedconferencing software.

Variations and modifications of the present invention are contemplated.For example, although the described embodiment utilizes an LCD panel andoverhead projector as separate unit, the LCD light source (i.e.projector) may be incorporated into an integrated unit. All suchmodifications and variations are believed to be within the sphere andscope as defined by the claims appended hereto.

The embodiments of the invention in which an exclusive property orprivilege is claimed are defined as follows:
 1. Control apparatus fordisplaying a computer-generated image, which is generated by a computer,through an image projector onto a large-screen display surface, thelarge-screen display surface being uncoupled from the image projector,said apparatus comprising: structure coupleable to the large-screendisplay surface and generating a control signal in response to pressureapplied at the large-screen display surface, the control signalcorresponding to a location on the large-screen display surface wherethe pressure is applied; a driver installable in the computer and havingcode for interacting with an application program running on the computerto execute an application program operation in response to the controlsignal, the application program operation causing the computer-generatedimage to change in response to the control signal; and code installablein the computer and causing the computer to display, on the large-screendisplay surface, a plurality of calibration marks, and causing thecomputer to store image display coordinate information corresponding toreceived control signals indicative of pressure applied at thelarge-screen display surface at positions corresponding to the pluralityof calibration marks.
 2. Apparatus according to claim 1, furthercomprising the large-screen display surface, and wherein said structureand said large-screen display surface comprise a touch sensitive screen.3. Apparatus according to claim 1, wherein the image projectorcomprises: an LCD projector coupled to the computer; and and overheadprojector adjacent said LCD projector.
 4. Apparatus according to claim3, wherein the image projector comprises an integrated unit. 5.Apparatus according to claim 1, wherein the application programcomprises at least one of a word processing program, a spread-sheetprogram, a graphics program, and a WINDOWS™ operating system. 6.Apparatus according to claim 1, wherein, when pressure corresponding toa line is applied at the large-screen display surface, control signalscorresponding to the line are supplied to said driver, which causes theapplication program to cause the computer to generate a line display fordisplaying on the large-screen display surface through the imageprojector, and wherein said driver includes code to cause the computerto store in memory signals corresponding to the line display. 7.Apparatus according to claim 1, wherein said driver causes the computerto recognize the control signal as a mouse command.
 8. Apparatusaccording to claim 1, wherein said structure generates the controlsignal in response to the pressure of a finger applied to thelarge-screen display surface.
 9. Apparatus according to claim 1, whereinsaid structure generates the control signal in response to the pressureof a stylus applied at the large-screen display surface.
 10. Apparatusaccording to claim 1, wherein, when an erasing device is used to applypressure at the large-screen display surface, said driver causes theapplication program to cause the computer to erase a portion of thecomputer-generated image displayed on the large-screen display surfacethat corresponds to the applied pressure.
 11. Apparatus according toclaim 1, wherein, when a red marker is used to apply a pattern ofpressure to the large-screen display surface, said driver causes theapplication program to cause the computer to generate display signals todisplay on the large-screen display surface a red pattern substantiallysimilar to said pattern of pressure, at a position corresponding towhere said pattern of pressure was applied with the red marker. 12.Apparatus according to claim 11, wherein the red marker comprises amarker pen.
 13. Apparatus according to claim 1, wherein said structuredetects pressure applied by a hand-held device having at least onebutton.
 14. Apparatus according to claim 1, wherein the applicationprogram causes the computer-generated image to be changed in response toany one of (i) the control signal, and (ii) a mouse command. 15.Apparatus according to claim 1, wherein the control signal causes thedriver to execute an interrupt service routine in response to at leastone of (i) a touching of the large-screen display surface, and (ii) apressing of a button.
 16. Apparatus according to claim 1, wherein saiddriver includes code to cause the computer to transmit said controlsignal over a network to a second computer to cause the second computerto update a computer-generated image in response to the transmittedcontrol signal.
 17. Apparatus according to claim 1, wherein, when adouble-click of pressure is applied at the large-screen display surface,said driver generates a double-click control signal.
 18. Apparatusaccording to claim 1, further comprising the image projector. 19.Apparatus according to claim 1, further comprising the computer. 20.Apparatus according to claim 1, further comprising the large-screendisplay surface.
 21. Apparatus according to claim 1, wherein saidcontrol signal corresponds to a line width selection command, whichcauses the driver to cause the computer to adjust a line width of aportion of the computer-generated image displayed on the large-screendisplay surface.
 22. Apparatus according to claim 1, wherein said drivercauses the application program to cause the computer to generate animage on the large-screen display surface having a plurality ofdifferent colors.
 23. Apparatus according to claim 1, further comprisinga second driver installable in the computer and causing, in response tosaid control signals, an application program running on the computer tomodify, at a location corresponding to the applied pressure, thecomputer-generated image displayed on the display surface.
 24. Apparatusaccording to claim 23, wherein said large-screen display comprises adigitizer.
 25. Apparatus according to claim 23, wherein saidlarge-screen display comprises a touch sensitive screen.
 26. Apparatusaccording to claim 23, wherein the projector comprises: an LCD projectorcoupled to the computer; and and overhead projector adjacent said LCDprojector.
 27. Apparatus according to claim 23, wherein the applicationprogram comprises at least one of a word processing program, aspread-sheet program, a graphics program, and a windows operatingsystem.
 28. Apparatus according to claim 23, wherein, when pressurecorresponding to a line is applied at the large-screen display surface,control signals corresponding to the line are supplied to said seconddriver, which causes the application program to cause the computer togenerate a line display for displaying on the large-screen displaysurface through the projector, and wherein said second driver includescode to cause the computer to store in memory signals corresponding tothe line display.
 29. Apparatus according to claim 23, wherein saidsecond driver causes the computer to recognize the control signals as amouse command.
 30. Apparatus according to claim 23, wherein saidstructure generates the control signals in response to the pressure of afinger applied to the large-screen display surface.
 31. Apparatusaccording to claim 23, wherein said structure generates the controlsignal in response to the pressure of a marker pen applied at thelarge-screen display surface.
 32. Apparatus according to claim 23,wherein, when an erasing device is used to apply pressure at thelarge-screen display surface, said second driver causes the applicationprogram to cause the computer to erase a portion of thecomputer-generated image displayed on the large-screen display surfacethat corresponds to the applied pressure.
 33. Apparatus according toclaim 23, wherein, when a red marker is used to apply a pattern ofpressure at the large-screen display surface, said second driver causesthe application program to cause the computer to generate displaysignals to display on the large-screen display surface a red patternsubstantially similar to said pattern of pressure, at a positioncorresponding to where said pattern of pressure was applied with the redmarker.
 34. Apparatus according to claim 23, wherein said structuredetects pressure applied by a hand-held device having at least onebutton.
 35. Apparatus according to claim 23, wherein the applicationprogram causes the computer-generated image to be changed in response toany one of (i) the control signals, and (ii) a mouse command. 36.Apparatus according to claim 23, wherein the control signals cause thedriver to execute an interrupt service routine in response to at leastone of (i) a touching of the large-screen, and (ii) a pressing of abutton.
 37. Apparatus according to claim 23, wherein said second driverincludes code to cause the computer to transmit said control signalsover a network to a second computer to cause the second computer toupdate a computer-generated image in response to the transmitted controlsignal.
 38. Apparatus according to claim 23, wherein, when adouble-click of pressure is applied at the large-screen display surface,said second driver generates a double-click control signal. 39.Apparatus according to claim 23, further comprising the image projector.40. Apparatus according to claim 23, further comprising the computer.41. Apparatus according to claim 23, wherein said control signalscorrespond to a line width selection command which causes the driver tocause the computer to adjust a line width of a portion of thecomputer-generated image displayed on the large-screen display surface.42. Apparatus according to claim 23, wherein said second driver causesthe application program to cause the computer to generate an image onthe large-screen display surface having a plurality of different colors.43. A method for controlling a display of a computer-generated imagetransmitted through an image projector onto a large-screen displaysurface, the large-screen display surface being uncoupled from the imageprojector, comprising the steps of: generating a control signal inresponse to pressure applied at the large-screen display surface, thecontrol signal corresponding to a location on the large-screen displaysurface where the pressure is applied; causing an application programrunning on the computer to execute an application program operation inresponse to the control signal, the application program operationcausing the computer-generated image to change in response to thecontrol signal; and causing the computer to display, on the large-screendisplay surface, a plurality of calibration marks, and causing thecomputer to store image display coordinate information corresponding toreceived control signals indicative of pressure applied at thelarge-screen display surface at positions corresponding to the pluralityof calibration marks.
 44. A method according to claim 43, wherein saidlarge-screen display surface comprises a touch sensitive screen.
 45. Amethod according to claim 43, wherein the application program comprisesat least one of a word processing program, a spread-sheet program, agraphics program, and a Windows operating system.
 46. A method accordingto claim 43, wherein, when pressure corresponding to a line is appliedat the large-screen display surface, control signals corresponding tothe line are supplied to a driver, which causes the application programto cause the computer to generate a line display for displaying on thelarge-screen display surface through the image projector, and whereinthe driver includes code to cause the computer to store in memorysignals corresponding to the line display.
 47. A method according toclaim 46, wherein the driver causes the computer to recognize thecontrol signal as a mouse command.
 48. A method according to claim 43,wherein the control signal is generated in response to the pressure of afinger applied to the large-screen display surface.
 49. A methodaccording to claim 43, wherein the control signal is generated inresponse to the pressure of a stylus applied at the large-screen displaysurface.
 50. A method according to claim 43, wherein, when an erasingdevice is used to apply pressure at the large-screen display surface, adriver causes the application program to cause the computer to erase aportion of the computer-generated image displayed on the large-screendisplay surface that corresponds to the applied pressure.
 51. A methodaccording to claim 43, wherein, when a red marker is used to apply apattern of pressure to the large-screen display surface, a driver causesthe application program to cause the computer to generate displaysignals to display on the large-screen display surface a red patternsubstantially similar to said pattern of pressure, at a positioncorresponding to where said pattern of pressure was applied with the redmarker.
 52. A method according to claim 51, wherein the red markercomprises a marker pen.
 53. A method according to claim 43, wherein thecontrol signal is generated in response to a hand-held device having atleast one button.
 54. A method according to claim 43, wherein theapplication program causes the computer-generated image to be changed inresponse to any one of (i) the control signal, and (ii) a mouse command.55. A method according to claim 43, wherein the control signal causes adriver to execute an interrupt service routine in response to at leastone of (i) a touching of the large-screen display surface, and (ii) apressing of a button.
 56. A method according to claim 43, furthercomprising the step of causing the computer to transmit said controlsignal over a network to a second computer to cause the second computerto update a computer-generated image in response to the transmittedcontrol signal.
 57. A method according to claim 43, wherein, when adouble-click of pressure is applied at the large-screen display surface,a driver generates a double-click control signal.
 58. A method accordingto claim 43, wherein said control signal corresponds to a line widthselection command, which causes a driver to cause the computer to adjusta line width of a portion of the computer-generated image displayed onthe large-screen display surface.
 59. A method according to claim 43,wherein said control signal causes the application program to cause thecomputer to generate an image on the large-screen display surface havinga plurality of different colors.
 60. A computer-readable storage mediumstoring code which causes a computer to control a display of an imagegenerated by the computer and transmitted through an image projectoronto a large-screen display surface, the large-screen display surfacebeing uncoupled from the image projector, structure coupled to thelarge-screen display surface outputting a control signal in response topressure applied at the large-screen display surface, the control signalcorresponding to a location on the large-screen display surface wherethe pressure is applied, the stored code causing the computer to performthe steps of: causing an application program running on the computer toexecute an application program operation in response to the controlsignal, the application program operation causing the computer-generatedimage displayed on the large-screen display surface to change inresponse to th e control signal; and causing the computer to display, onthe large-screen display surface, a plurality of calibration marks, andcausing the computer to store image display coordinate informationcorresponding to received control signals indicative of pressure appliedat the large-screen display surface at positions corresponding to theplurality of calibration marks.
 61. A computer-readable storage mediumaccording to claim 60, wherein the application program comprises atleast one of a word processing program, a spread-sheet program, agraphics program, and a Windows operating system.
 62. Acomputer-readable storage medium according to claim 60, wherein thestored code causes, when pressure corresponding to a line is applied atthe large-screen display surface, control signals corresponding to theline to be supplied to the computer, said stored code causing theapplication program to cause the computer to generate a line display fordisplaying on the large-screen display surface through the imageprojector, and wherein said stored code includes code to cause thecomputer to store in memory signals corresponding to the line display.63. A computer-readable storage medium according to claim 60, whereinsaid stored code causes the computer to recognize the control signal asa mouse command.
 64. A computer-readable storage medium according toclaim 60, wherein said stored code causes the control signal to begenerated in response to the pressure of a stylus applied at thelarge-screen display surface.
 65. A computer-readable storage mediumaccording to claim 60, wherein, when an erasing device is used to applypressure at the large-screen display surface, said stored code causesthe application program to cause the computer to erase a portion of thecomputer-generated image displayed on the large-screen display surfacethat corresponds to the applied pressure.
 66. A computer-readablestorage medium according to claim 60, wherein, when a red marker is usedto apply a pattern of pressure to the large-screen display surface, thestored code causes the application program to cause the computer togenerate display signals to display on the large-screen display surfacea red pattern substantially similar to said pattern of pressure, at aposition corresponding to where said pattern of pressure was appliedwith the red marker.
 67. A computer-readable storage medium according toclaim 60, wherein said stored code causes the control signal to begenerated in response to pressure applied by a hand-held device havingat least one button.
 68. A computer-readable storage medium according toclaim 60, wherein the stored code causes the computer-generated image tobe changed in response to any one of (i) the control signal, and (ii) amouse command.
 69. A computer-readable storage medium according to claim60, wherein the stored code causes a driver to execute an interruptservice routine in response to at least one of (i) a touching of thelarge-screen display surface, and (ii) a pressing of a button.
 70. Acomputer-readable storage medium according to claim 60, wherein thestored code causes the computer to transmit said control signal over anetwork to a second computer to cause the second computer to update acomputer-generated image in response to the transmitted control signal.71. A computer-readable storage medium according to claim 60, wherein,when a double-click of pressure is applied at the large-screen displaysurface, said stored code causes a double-click control signal to begenerated.
 72. A computer-readable storage medium according to claim 60,wherein said control signal corresponds to a line width selectioncommand, which causes the stored code to cause the computer to adjust aline width of a portion of the computer-generated image displayed on thelarge-screen display surface.
 73. Apparatus for displaying acomputer-generated image from an image projector onto a white boardsurface, the white board being uncoupled from the image projector, saidapparatus comprising: structure coupleable to the white board andgenerating a control signal in response to a physical touching of thewhite board surface, the control signal corresponding to a location onthe white board where the physical touch is applied; and a driverinstallable in the computer and having code causing the computer todisplay, on the white board surface, at least one calibration mark, andcausing the computer to store image display coordinate informationcorresponding to a received control signal indicative of physicaltouching of the white board at a position corresponding to the at leastone calibration mark.
 74. A white board calibration system, comprising:detection structure, coupleable to the white board and generatinglocation signals when a pressure is induced at a surface of the whiteboard; and computer-readable software which: (i) causes a projector todisplay at least one calibration mark on the white board surface; (ii)causes a computer to receive the pressure-induced location signals fromthe detection structure, the received signals corresponding to alocation on the white board surface where the calibration mark wasprojected; and (iii) causes the computer to store alignment informationwhich corrects misalignment between images projected from the projectorand the white board surface.
 75. Apparatus for correcting misalignmentbetween a white board surface and computer-generated images projectedthereon, comprising: detection structure, coupleable to the whiteboard;a hand-held marker device having at least one button, said hand-helddevice and said detection structure cooperating to produce a locationsignal when said hand-held device is used to physically touch apredetermined location on the white board surface; and computer-readablecode which causes a computer to store alignment coordinate informationto correct misalignment between a white board surface andcomputer-generated images projected thereon, in response to the locationsignal produced when said hand-held device is used to physically touch apredetermined location on the white board surface.
 76. Apparatus forprojecting computer-generated images on the surface of a white board,comprising: detection structure, coupleable to the whiteboard; ahand-held marker device having at least one button, said hand-helddevice and said detection structure cooperating to produce a locationsignal when said hand-held device is used to generate a pressure at thewhite board surface; and computer-readable code which (i) causes acomputer to project an application program onto the whiteboard surface,(ii) causes the computer to update the projected application program inresponse to the location signal, and (iii) causes the computer to storealignment correction information in response to the hand-held device andthe detection structure cooperating to produce an alignment locationsignal when said hand-held device is used to generate a pressure at apredetermined location on the white board surface.
 77. A white boardcalibration method, comprising the steps of: using a detectionstructure, which is coupleable to the white board, to generate locationsignals when the detection structure detects that a pressure is inducedat a surface of the white board; causing a projector to display at leastone calibration mark on the white board surface; causing a computer toreceive the pressure-induced location signals from the detectionstructure, the received signals corresponding to a location on the whiteboard surface where the calibration mark was projected; and causing thecomputer to store alignment information which corrects misalignmentbetween images projected from the projector and the white board surface.78. A method for correcting misalignment between a white board surfaceand computer-generated images projected thereon, comprising the stepsof: providing detection structure which is coupleable to the whiteboard;providing a hand-held marker device having at least one button, saidhand-held device and said detection structure configured to cooperate toproduce a location signal when said hand-held device is used tophysically touch the white board surface; and providingcomputer-readable code which: (i) causes a computer to project anapplication program onto the whiteboard surface, (ii) causes thecomputer to update the projected application program in response to thelocation signal, and (iii) causes the computer to store alignmentcorrection information in response to the hand-held device and thedetection structure cooperating to produce an alignment location signalwhen said hand-held device is used to physically touch a predeterminedlocation on the white board surface.